case

case

構造

case expression in

pattern1)

statements ;;

pattern2)

statements ;;

pattern3)

statements ;;

esac

case expressionを設定する。

pattern が設定されたものと等しい場合statementsを実行する。

esac 実行範囲終了

例)

色々な画像ファイル名から画像を判断しgif-fileへ変換し、filen-nameもgifへ変えるプログラムを使って文字列比較演算子の使い方を理解しよう。

filename=$1

extention=${filename##*. } # サフィクス以外を取り除く。

ppmfile=${filename%.*}.ppm # サフィクスを取り除き.ppmを加える。

outfile=${filename%.*}.gif # サフィクスを取り除き.gifを加える。

if [ -z $filename ]; then # でfilenameがNULLであるか判断している。

echo "profile: ファイルがありません."

exit 1 # 判定終了

fi

case $extention in

gif ) # サフィクスがgifの場合そのまま終了。

exit 0# 判定終了

tga ) # サフィックスがtgaの場合

tgatoppm $filename > $ppmfile ;; # tagtoをfilename(tga)で実行し $ppmfile(ppm)に書き込む。

xpm ) # サフィックスがtgaの場合

xpmtoppm $filename > $ppmfile ;;

pcx ) # サフィックスがtgaの場合

pcxtoppm $filename > $ppmfile ;;

tiff ) # サフィックスがtgaの場合

tifftoppm $filename > $ppmfile ;;

jpg ) # サフィックスがtgaの場合

djpeg $filename > $ppmfile ;;

* ) # サフィクスが該当しない場合の処理を行う。

echoo "profile: $filename 処理対象にない画像ファイルです。"

exit 1;; # 判定終了

esac

ppmquant -quiet 256 $ppmfile | ppmogif -quiet > $outfile # ppmに加工されたfileを変換あわせて、サフィクスgifへ変えた名前で書き出す。

rm $ppnfile # tmpとして作成された.ppmを消す。

Last edit was Monday, 06/17/2002 <back> <top>

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル